<?php
require_once("model/Composant.class.php");
class ClientFacade {

	//attributs
	var $url;        //l'url du web service
	var $loggedIn;   //un booleen pour garder l'etat de la connection

	/*
	 ouvre une session avec le serveur de web services, pour pouvoir les utiliser
 	 p_url:l'url du web service
	 p_user:le nomd'utilisateur a utiliser
	 p_pw:le mot de passe a utiliser
	*/
	function login($p_url,$p_user,$p_pw){
		$this->url=$p_url;
		
		//code d'interogation du web service
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $this->url);
		curl_setopt ($ch, CURLOPT_POST, 1);
		curl_setopt ($ch, CURLOPT_POSTFIELDS, "action=login&user=".$p_user."&pwd=".$p_pw);
		curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); //sauvegarde du cookie de session pour transmission au serveur
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		//execution de la requete vers le serveur de web services et recuperation des donnees		
		$content = curl_exec ($ch); 	

		$this->logged_in=True;		
		//echo $content;
		curl_close ($ch);
	}



	//**************************************************Méthodes métier***********************************************************

	/*
	retourne une liste de composants (instances de la classe composant)
	*/
	function getComposants(){
		$lc=array();		
		$ch = curl_init(); //creation du connecteur curl
		curl_setopt($ch, CURLOPT_URL, $this->url);//config de l'url de la requête
		curl_setopt ($ch, CURLOPT_POST, 1);//config de la methode http en post		
		curl_setopt ($ch, CURLOPT_POSTFIELDS, "action=getComposants"); //affectation des parametres a la requete
		curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');	 //lecture du cookie pour transmission au serveur	
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		$content = curl_exec ($ch); # This returns XML
		curl_close ($ch);	

		$doc = new DOMDocument();
		$doc->loadXML($content);
		$composants = $doc->getElementsByTagName("composant");
		
		foreach ($composants as $e){
			$c=new Composant();
			
			$sousElt=$e->getElementsByTagName("idcomp")->item(0);
			$c->setId($sousElt->textContent);

			$sousElt=$e->getElementsByTagName("nomcomp")->item(0);
			$c->setNom($sousElt->textContent);

			$sousElt=$e->getElementsByTagName("desccomp")->item(0);
			$c->setDesc($sousElt->textContent);

			$sousElt=$e->getElementsByTagName("imgcomp")->item(0);
			$c->setImg($sousElt->textContent);
			
			$sousElt=$e->getElementsByTagName("qtestockcomp")->item(0);
			$c->setQteStock($sousElt->textContent);
	
			$sousElt=$e->getElementsByTagName("seuilalertecomp")->item(0);
			$c->setQteAlerte($sousElt->textContent);				    	
			
			//on ajoute c a la fin du tableau
		   	$lc[]=$c;			
		}
		return $lc;		
	}

}



?>
